home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / choices / pc / pc_docs.lha / pccdoc.0.5 < prev    next >
Encoding:
Text File  |  1993-07-05  |  15.0 KB  |  339 lines

  1. Instructions for using PC-Choices
  2.  
  3. (Version 0.5, ftp distribution, 2 Mar 92)
  4.  
  5. This document explains how to install and run PC-Choices.  If you
  6. encounter any problems, please contact Lup at lup@cs.uiuc.edu.
  7.  
  8. What is PC-Choices
  9.  
  10.     PC-Choices is a version of Choices for 386/486 PCs.  Choices is a
  11.     portable object-oriented operating system developed by the University
  12.     of Illinois' Systems Research Group, headed by Prof. Roy Campbell.
  13.     The PC-Choices kernel runs in 32-bit protected mode and calls
  14.     DOS/BIOS in 16-bit virtual-8086 mode for input/output operations.
  15.     Because it uses DOS/BIOS instead of working with I/O hardware
  16.     directly, PC-Choices will run on many PCs.  PC-Choices is written
  17.     mainly in C++ and the source code is available free-of-charge to
  18.     people who sign the educational/research license.  PC-Choices contains
  19.     no proprietary code.
  20.  
  21. System requirements
  22.  
  23.     A 386/486 PC running DOS version 3.0 or higher; EGA or VGA display;
  24.     at least 3 Meg extended memory.  PC-Choices does not swap out memory
  25.     so it may not run properly without lots of extended memory (say 5 Meg).
  26.     3 Meg of disk space is required for storing the Choices kernel and
  27.     application files.
  28.  
  29. What does it do
  30.  
  31.     PC-Choices runs 32-bit Choices applications and supports multitasking.
  32.     The PC-Choices package has a command shell, some file utilities,
  33.     a kernel browsing tool, a kernel visualization monitor and some
  34.     simple applications.  Users can compile PC-Choices applications
  35.     with DJGPP, the DOS port of g++.  Applications are written using
  36.     the Choices object-oriented application programming interface.
  37.  
  38. Who should use PC-Choices
  39.  
  40.     People interested in object-oriented operating systems; people
  41.     who want to build 32-bit applications and run them in a multitasking
  42.     PC environment; people who want to learn how protected-mode PC
  43.     operating systems can be implemented in C++.  PC-Choices is
  44.     currently available for beta-testing.  PC-Choices has been tested
  45.     on the IBM PS/2 Model 80, IBM PS/2 Model L40SX, IBM PS/55 Note,
  46.     ALR Business VEISA 486-33, AT&T 6386WGS and other 386 PCs, with
  47.     DOS 3.3, 4.0 and 5.0.
  48.  
  49. _____________________________________________________________________________
  50. PC-Choices Incompatibilities
  51.  
  52. (1) All extended memory must be usable by PC-Choices.  PC-Choices will
  53.     not work if there are programs or data in extended memory.  Some
  54.     DOSs make use of extended memory and are therefore incompatible
  55.     with PC-Choices.  Change your system configuration before running
  56.     PC-Choices so that nothing is loaded into extended memory.
  57.     Here are some tips for DOS 5.0 users: don't use "DOS=HIGH",
  58.     DEVICEHIGH, HIMEM.SYS or SMARTDRV.SYS in your CONFIG.SYS and
  59.     AUTOEXEC.BAT files.
  60.  
  61. (2) The machine should not be in virtual-8086 mode when starting
  62.     PC-Choices.  Some memory managers such as EMM386.SYS put the
  63.     machine into virtual-8086 mode while running.  Remove these
  64.     memory managers from your system configuration.
  65.  
  66. (3) PC-Choices assumes that there is 640K of base memory, and uses
  67.     300K of low memory by default.  The amount of memory to be used
  68.     may be adjusted by changing the configuration file pcc/bin/config.
  69.  
  70. (4) PC-Choices always uses the first text-mode display page for console
  71.     output.
  72.     
  73. Warning: It is possible that PC-Choices will damage the data on your
  74.          diskette or hard disk (although this has never happened
  75.      before).  Make sure you have backups of your disks before
  76.      running PC-Choices.
  77.  
  78. _____________________________________________________________________________
  79. Setting up PC-Choices
  80.  
  81.     To fetch the PC-Choices package, ftp anonymously to choices.cs.uiuc.edu.
  82.     Get the file Choices/PC-Choices/pcc.zip in binary mode.  (This document
  83.     you're reading is in the file Choices/PC-Choices/pccdoc.)  Copy pcc.zip
  84.     to the PC, say to the root directory on the C drive (c:\).  You should
  85.     have an UNZIP utility that unpacks ZIP archives.  (Contact
  86.     lup@cs.uiuc.edu if you don't.)  Unpack pcc.zip with your UNZIP utility
  87.     like this:
  88.  
  89.         unzip -d pcc.zip
  90.  
  91.     (Note: Some old versions of PKUNZIP are buggy and will complain about
  92.     about CRC errors when there are really none.  Use the newest version of
  93.     PKUNZIP or use Info-ZIP's UNZIP instead.)
  94.  
  95.     The directories pcc, pcc\bin and pcc\cbin and their files will be
  96.     unpacked in the current directory.  Delete pcc.zip.  (If a previous
  97.     version of PC-Choices is already installed on your machine, UNZIP
  98.     will ask you whether it should overwrite the files; just say "yes".)
  99.  
  100.     We now have to edit pcc\bin\profile to tell the command shell
  101.     (Chocs) where to look for the Choices application binaries.  Edit
  102.     pcc\bin\profile and you will see this:
  103.  
  104.         PATH=d:/pcc/cbin
  105.  
  106.     Change it so that it references the correct directory.  For example,
  107.     if you unpacked the PC-Choices package in c:\, you should change
  108.     the line above to:
  109.  
  110.         PATH=c:/pcc/cbin
  111.  
  112.     If your PC is an IBM PS/2, PS/55 or something similar, edit
  113.     c:\pcc\bin\config, change "PS2Keyboard = no" to "PS2Keyboard = yes",
  114.     and change "PS2Timer = no" to "PS2Timer = yes".
  115.         
  116.     PC-Choices is now ready to be used.
  117.  
  118. _____________________________________________________________________________
  119. Booting PC-Choices
  120.  
  121.     Go to the pcc\bin directory and type "pcc".  After a while, you
  122.     should see
  123.  
  124.     Choices Command Shell (Chocs 0.0)
  125.     For help contact lup@cs.uiuc.edu
  126.  
  127.     Choices>
  128.  
  129.     If the system does not respond to any keypresses, you cannot continue
  130.     using PC-Choices.  You should reboot the PC, change the system
  131.     configuration and boot PC-Choices again.  Look at pcc\bin\config to
  132.     find out what parameters you can set in order to make PC-Choices
  133.     run on your system.
  134.  
  135.     If you still have difficulty running PC-Choices, please contact
  136.     me as soon as possible - I'm very eager to fix all compatibility
  137.     problems.
  138.  
  139. _____________________________________________________________________________
  140. Running Applications
  141.  
  142.     The "Choices>" prompt indicates that you're in the Choices command
  143.     shell, which allows you to run applications.  For more information
  144.     about the shell, enter "help".  Here is an incomplete list of
  145.     applications that are available (see pcc\cbin\readme for the complete
  146.     list):
  147.  
  148.     ls      - List the contents of the current directory.
  149.     cd      - Change current directory.  Without arguments, it prints the
  150.               name of the current directory.
  151.     hello   - Prints a message.  Can be used with an argument.
  152.     flash   - Flash the screen 5 times.
  153.     count   - Display digits 9 to 0 in large print.
  154.     worms   - Draw a worm on the screen.
  155.     logo    - Displays the PC-Choices logo.
  156.     kindred - "kindred X" shows all living objects in the kernel that belong to
  157.               class X and its subclasses.  (Try "kindred Process",
  158.           "kindred MemoryObject" and "kindred Domain".)
  159.     dos     - Start a DOS shell as a PC-Choices process.
  160.  
  161.     To execute an application, just enter its name and arguments at the
  162.     shell prompt; the shell works like the Bourne shell.  To execute an
  163.     application in the background, type the application name and arguments,
  164.     and type '&' at the end of the line before pressing Return.
  165.  
  166.     If you see the message "Store::alloc() out of memory" while
  167.     multitasking, it means that the PC does not have enough memory to run
  168.     multiple programs at the same time.  You can still use PC-Choices by
  169.     running a single program at a time.
  170.  
  171.     To shut down PC-Choices, enter "exit" at the shell prompt and the machine
  172.     will return to DOS.
  173.     
  174. _____________________________________________________________________________
  175. Kernel Visualization Monitor
  176.  
  177.     PC-Choices can visualize its kernel state.  Enter "monitor".
  178.     You should see 10 stripes (called "sliders") at the bottom on the
  179.     screen.  A slider moves when the labelled event happens.  The
  180.     sliders keep track of these events:
  181.  
  182.         DOS:            Calls to DOS functions (INT 0x21).
  183.     Disk BIOS:      Calls to BIOS disk functions (INT 0x13).
  184.         Keyboard BIOS:  Calls to BIOS keyboard functions (INT 0x16).
  185.     Interrupt:      Hardware interrupt passed to BIOS.
  186.     Context Switch: Switching the contexts of processes.
  187.     CPU Idle:       CPU is currently idle.
  188.         Process N:      Application process N is currently running.
  189.  
  190.     Try running various applications in the foreground and background
  191.     and see how the sliders behave.  To turn off the sliders, enter
  192.     "monitor" again.
  193.  
  194. _____________________________________________________________________________
  195. Questionnaire
  196.  
  197.     The PC-Choices project team would like to obtain your comments
  198.     in order to make PC-Choices more useful for you.  Please answer
  199.     the following questions (all answers are optional):
  200.  
  201.     Please write down your occupation and describe your interests.
  202.  
  203.     A--->
  204.  
  205.     Would you like to use PC-Choices in your work?  As a hobby?
  206.     How would you use it?
  207.  
  208.     B--->
  209.  
  210.     What new applications would you like us to develop?
  211.  
  212.     C--->
  213.  
  214.     If you could use the PC-Choices application compilation
  215.     environment, what applications would you write?
  216.  
  217.     D--->
  218.  
  219.     Do you want the source code for the PC-Choices kernel?  Do you
  220.     want the ability to customize the kernel by recompiling the
  221.     kernel yourself?
  222.  
  223.     E--->
  224.  
  225.     How do you feel about the performance of PC-Choices?  Is disk
  226.     I/O too slow for ordinary use?
  227.  
  228.     F--->
  229.  
  230.     Have you heard of the Choices project before?  How much do you
  231.     know about it?
  232.  
  233.     G--->
  234.  
  235.     Other comments:
  236.  
  237.     H--->
  238.  
  239.     Please return the questionnaire to lup@cs.uiuc.edu.  Thank you.
  240.  
  241. _____________________________________________________________________________
  242. Overview of Choices
  243.  
  244.     Choices, the object-oriented operating system, is well-documented;
  245.     many papers have been written about it.  It is an operating system
  246.     composed of C++ objects.  When Choices is running, numerous
  247.     objects work together in the system in order to provide operating
  248.     system services.  Examples of Choices objects are Processes, Domains,
  249.     MemoryObjects, CPUs, Semaphores and NameServers.  A Domain is a virtual
  250.     memory space in which Processes run, and MemoryObjects represent data
  251.     regions in the Domain that are accessible to Processes.  In Choices,
  252.     C++ classes are also objects, so that programs may ask an object to
  253.     return its class, and given a class, find out all the superclasses
  254.     and subclasses of the class.  Programs may also find out all instances
  255.     of the class.
  256.  
  257.     Many modern operating systems operating-systems are object-based,
  258.     but only Choices is a real object-oriented operating system, because
  259.     it uses class hierarchies.  For example, SystemProcess is a subclass
  260.     of Process.  ApplicationProcess is also a subclass of Process.  A
  261.     SystemProcess is a special kind of Process that executes in supervisor
  262.     mode and is non-preemptable.  An ApplicationProcess is a special
  263.     kind of Process that executes in user mode, and is preemptable.
  264.     Both SystemProcess and ApplicationProcess inherit methods from Process,
  265.     but because they have different characteristics, the two subclasses
  266.     define certain methods differently.  MemoryObject is subclassed
  267.     to represent various types of data stores such as physical memory
  268.     ranges, files and disks.
  269.  
  270.     Subclassing is also used to make the operating system as modular
  271.     as possible, and to encapsulate machine-dependent characteristics
  272.     in separate subclasses.  For example, CPU has subclasses i386CPU,
  273.     NS32332CPU, MC68030CPU and SPARCCPU, all of which define their
  274.     methods differently to handle CPU-specific operations like
  275.     context-switching and exception-handling.
  276.  
  277.     Choices application programs are written in C++ in an object-
  278.     oriented manner too.  System calls in Unix and most other operating
  279.     systems are flat function calls.  System calls in Choices are object-
  280.     oriented - the kernel gives an application program pointers to kernel
  281.     objects and the program may invoke methods on these kernel objects to
  282.     perform system functions.  In the object-oriented interface,
  283.     applications may create kernel objects such as Processes, Semaphores,
  284.     Domains and MemoryObjects.  Kernel objects are not literally handed
  285.     to the application program; Choices contains a secure kernel
  286.     interface whereby "proxies" representing kernel objects are actually
  287.     handed to the application program, and calling any method on that
  288.     proxy will cause a trap into the kernel, and after checking the method
  289.     arguments, the method call will be forwarded to the appropriate kernel
  290.     object.
  291.  
  292.     Choices has been ported to the multiprocessor Encore Multimax,
  293.     AT&T 6386WGS, IBM PS/2, Apple Macintosh IIx, SPARCstation I & II,
  294.     and we are currently porting it to the Intel Hypercube iPSC/2 and
  295.     Silicon Graphics workstations.  The Multimax port of Choices currently
  296.     has the most number of Choices applications.  Many Unix applications
  297.     have been ported to Multimax Choices: g++, gas, bash, GNU file
  298.     utilities and GNU Smalltalk.  Multimax Choices runs TCP/IP and
  299.     provides Telnet and FTP services.
  300.  
  301.     PC-Choices is a new port of Choices to 386-based PCs running DOS.
  302.     This is an interesting project because this is the first time
  303.     that a minimal Choices kernel has been isolated.  The PC-Choices
  304.     kernel is only concerned with process management, virtual memory
  305.     and interrupt handling.  All other services are provided by DOS
  306.     and BIOS, which run as user processes.  Application libraries are
  307.     provided to map the DOS and BIOS interface into an object-oriented
  308.     interface so that Choices applications built for other ports
  309.     of Choices will run easily under PC-Choices.  Applications may call
  310.     DOS and BIOS routines through a special object-based interface, and
  311.     through this interface, applications may also spawn off DOS processes.
  312.  
  313.     PC-Choices was compiled on a SPARCstation with a g++ cross-compiler
  314.     for fast compilation.  The PC-Choices application libraries and
  315.     system interface header files have been ported to DOS, and PC-Choices
  316.     applications may be produced by simply compiling them with DOS g++
  317.     (DJGPP) and linking the object files with the PC-Choices libraries.
  318.  
  319.     There is currently a small group of Choices researchers.  These people
  320.     are involved in many diverse research projects, such as distributed
  321.     virtual memory, message-passing, transaction processing, networked
  322.     filesystems, networking protocols, Unix compatibility, performance
  323.     visualization and object-oriented graphical interfaces.
  324.     
  325. _____________________________________________________________________________
  326. Conclusion
  327.  
  328.     If PC-Choices ran on your PC without major problems, you might want
  329.     to try out the PC-Choices application development package,
  330.     which lets you compile PC-Choices applications under DOS.  DOS g++
  331.     (DJGPP) is required for compiling the applications.  Contact
  332.     lup@cs.uiuc.edu for information on obtaining the application
  333.     development package.
  334.  
  335.     Thank you for using PC-Choices.
  336.  
  337. Lup
  338. lup@cs.uiuc.edu    Graduate Student    PC-Choices Manager
  339.